/**
 * @Copyright ®2015 Sinosoft Co. Ltd. All rights reserved.
 * 项目名称 : 网站服务平台
 * 创建日期 : 2017-09-05
 * 修改历史 :
 * 1. [2017-09-05]创建文件 by chenxin
 */
package com.gavinwind.common.auth.facade;

import com.gavinwind.common.auth.config.ENUM_AUTH_EVENTTYPE;
import com.gavinwind.common.auth.config.ENUM_INSPAY_TENANT;
import com.gavinwind.common.auth.dto.TokeAccessDTO;
import com.gavinwind.inspay.common.exception.system.SignErrException;

/**
 * 【Token认证服务Facade服务接口】
 * @author chenxin
 * @date 2017-09-05 下午12:22 
 * @version V1.0
 */
public interface TokenAuthFacadeService {
    /**
     * 获取token令牌
     * @description 会根据不同租户获取签名方式,来生成制定的token,TokenAccessDTO中的username password为非必传参数,根据需要决定
     * @param cTenant
     * @param cEventType
     * @param cAccessInfo
     * @return String 相应tenant的token签名串
     */
    String getAuthToken(ENUM_INSPAY_TENANT cTenant, ENUM_AUTH_EVENTTYPE cEventType, TokeAccessDTO cAccessInfo);

    /**
     * 检查token的合法性
     * @param cTenant
     * @param cEventType
     * @param cTokenMsg
     * @exception SignErrException token验证不通过或者token超时时抛出此异常
     */
    void checkTokenAccess(ENUM_INSPAY_TENANT cTenant,ENUM_AUTH_EVENTTYPE cEventType, String cTokenMsg) throws SignErrException;
}
